iT邦幫忙

2021 iThome 鐵人賽

DAY 4
0

字串

在Python裡扮演很重要的角色,
使用**單引號「'」與雙引號「"」**所包含的文字,
都會被視為字串,
字串內可以儲存Unicode編碼的文字,
我們這邊來看個例子 :

a_1 = '今天"是鐵人賽"第四天'
print(a_1) # 今天"是鐵人賽"第四天
a_2 = "今天'是鐵人賽'第四天"
print(a_2) # 今天'是鐵人賽'第四天

使用連續三個單引號「'」或雙引號「"」,
可以用於顯示多行文字
且每行前面的空白也會正常顯示,
換行字元也會保留,
我們這邊來看個例子 :

#輸入
a_1 = '''  今天是鐵人賽,
  的第四天喔喔 !
  '''
print(a_1)
#輸出
  今天是鐵人賽,
  的第四天喔喔 !

字串運算子

字串運算子主要用於處理字串:

運算子 說明
a + b 串接字串,可以將a和b兩個字串合併成一個字串
a * b 複製字串,複製b份字串接在原本a字串後面
a [ b ] 取出字串元素,取出a字串裡的第b個元素
[ 開始:結束:間隔 ] 切割元素( 詳見下方 )
我們這邊來看個例子 :
a_1 = '01234'
a_2 = '56789'
a_3 = a_1 + a_2
pritn(a_3) # 0123456789
a_4 = a_1 * 2
print(a_4) # 0123401234
print(a_1[0]) # 0
print(a_1[1]) # 1
print(a_1[-1]) #4
print(a_1[-2]) #3

說到了這邊可能會有人不懂,
為何a_1[0]取出的第0個元素是「0」,
這就要說到元素個數的編號了,
假設有個字串 「a = '12345'」如下,

a = '12345'

1 2 3 4 5
[ 0 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ]
[ -5 ] [ -4 ] [ -3 ] [ -2 ] [ -1 ]
從表中可以看到,
字串的元素是從0開始遞增,
故a[0] = 1 ,
而倒過來則是從-1開始遞減,
故a[-1] = 4。

切割字串

有了上面元素號碼的概念,
這邊要來介紹切割字串的概念,
[ 開始:結束:間隔 ],
從「開始」到「結束」( 不包含結束的字元 )
每隔「間隔」個字元取一個字元出來。

  • a[ : ] 表示字串a的每一個元素
  • a[開始: ] 表示取出字串a[開始]到字串a結束的所有元素
  • a[ :結束] 表示取出字串a[0]到a[結束]所指定元素的前一個元素為止的所有元素
  • a[開始:結束] 表示取出字串a[開始]到a[結束]所指定元素的前一個元素為止的所有元素
  • a[開始:結束:間隔]表 示取出字串a[開始]到a[結束]所指定元素的前一個元素為止的所有元素中,每隔「間隔」元素取一個元素
  • a[::-1] 表示反轉字串,第一個元素與最後一個元素交換,第二個元素與倒數第二個元素交換,以此類推
    我們這邊來看個例子 :
# 輸入 
# 可以先自己先手寫看看輸出再去對答案喔 !
a='0123456789'
print('a =',a)
print('a[:] =',a[:])
print('a[3:] =',a[3:])
print('a[-5:] =',a[-5:])
print('a[:3] =',a[:3])
print('a[:-5] =',a[:-5])
print('a[4:9] =',a[4:9])
print('a[-5:-1] =',a[-5:-1])
print('a[1:10:3] =',a[1:10:3])
print('a[::-1] =',a[::-1])
print('a[-1::-1] =',a[-1::-1])

大家可以先試著寫看看輸出會是甚麼,
再來看下面的解答喔

# 輸出
a = 0123456789
a[:] = 0123456789
a[3:] = 3456789
a[-5:] = 56789
a[:3] = 012
a[:-5] = 01234
a[4:9] = 45678
a[-5:-1] = 5678
a[1:10:3] = 147
a[::-1] = 9876543210
a[-1::-1] = 9876543210

如果上述的例子都對了,
代表你理解的很透徹喔,
如果有錯的朋友記得回去看切割字串的講解喔 !
今天的教室就到這邊告一段落了,
明天會講解常用的字串內建函式,
大家也要繼續加油喔~~~
/images/emoticon/emoticon08.gif


上一篇
[Day_3] Python運算子
下一篇
[Day_5]Python 字串(2)
系列文
Python淺顯易懂的小教室30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言